cmake_minimum_required(VERSION 3.11)
project(HighPerformanceLinuxServerProgramming_Linux)

set(CMAKE_CXX_STANDARD 14)

#add_executable(HighPerformanceLinuxServerProgramming_Linux A/main.cpp)

# 以后不这么写了, 将所有的内容都写在这个CMakeLists.txt文件中。所以在这个工程中除了此CMakeLists.txt文件, 其它文件全部作废！！！！
# 但是我并没有删除那些其它的CMakeLists.txt文件, 就当是一次成长的经验吧。
#add_subdirectory(Test)

add_executable(MultiplexingIOTest01-Client
        Test/IOMultiplexing/MultiplexingIOTest01/Client.cpp)

add_executable(MultiplexingIOTest01-Server
        Test/IOMultiplexing/MultiplexingIOTest01/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest01/ClientData.hpp
        Test/IOMultiplexing/MultiplexingIOTest01/ClientData.cpp)


add_executable(MultiplexingIOTest02-Client
        Test/IOMultiplexing/MultiplexingIOTest02/Client.cpp)

add_executable(MultiplexingIOTest02-Server
        Test/IOMultiplexing/MultiplexingIOTest02/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest02/ClientData.cpp Test/IOMultiplexing/MultiplexingIOTest02/ClientData.hpp)

add_executable(Test-Client
        Test/IOMultiplexing/MultiplexingIOTest02/Test/Client.cpp)

add_executable(Test-Server
        Test/IOMultiplexing/MultiplexingIOTest02/Test/Server.cpp)

add_executable(MultiplexingIOTest03-Client
        Test/IOMultiplexing/MultiplexingIOTest03/Client.cpp)

add_executable(MultiplexingIOTest03-Server
        Test/IOMultiplexing/MultiplexingIOTest03/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest03/ClientData.cpp Test/IOMultiplexing/MultiplexingIOTest03/ClientData.hpp)


add_executable(MultiplexingIOTest04-Client
        Test/IOMultiplexing/MultiplexingIOTest04/Client.cpp)

add_executable(MultiplexingIOTest04-Server
        Test/IOMultiplexing/MultiplexingIOTest04/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest04/ClientData.cpp Test/IOMultiplexing/MultiplexingIOTest04/ClientData.hpp)

##################################################
# 5作为大作业提交的版本
add_executable(MultiplexingIOTest05-Client
        Test/IOMultiplexing/MultiplexingIOTest05/Client.cpp)

add_executable(MultiplexingIOTest05-Server
        Test/IOMultiplexing/MultiplexingIOTest05/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest05/ClientData.cpp Test/IOMultiplexing/MultiplexingIOTest05/ClientData.hpp)
##################################################
# 6为实现私聊功能新的思路
add_executable(MultiplexingIOTest06-Client
        Test/IOMultiplexing/MultiplexingIOTest06/Client.cpp)

add_executable(MultiplexingIOTest06-Server
        Test/IOMultiplexing/MultiplexingIOTest06/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest06/ClientData.cpp Test/IOMultiplexing/MultiplexingIOTest06/ClientData.hpp)
##################################################
# 7先完善群聊功能
# TODO 注意: 这种使用方式就非常灵活, 同时运行同一个文件多次！！！！只需修改CMakeLists.txt就可以了。
add_executable(MultiplexingIOTest07-Client1
        Test/IOMultiplexing/MultiplexingIOTest07/Client.cpp)

add_executable(MultiplexingIOTest07-Client2
        Test/IOMultiplexing/MultiplexingIOTest07/Client.cpp)

add_executable(MultiplexingIOTest07-Client3
        Test/IOMultiplexing/MultiplexingIOTest07/Client.cpp)

add_executable(MultiplexingIOTest07-Client4
        Test/IOMultiplexing/MultiplexingIOTest07/Client.cpp)

add_executable(MultiplexingIOTest07-Server
        Test/IOMultiplexing/MultiplexingIOTest07/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest07/ClientData.cpp Test/IOMultiplexing/MultiplexingIOTest07/ClientData.hpp)

##################################################
# 8 7已经完成群聊功能, 现在开始实现私聊功能
add_executable(MultiplexingIOTest08-Client1
        Test/IOMultiplexing/MultiplexingIOTest08/Client.cpp)

add_executable(MultiplexingIOTest08-Client2
        Test/IOMultiplexing/MultiplexingIOTest08/Client.cpp)

add_executable(MultiplexingIOTest08-Client3
        Test/IOMultiplexing/MultiplexingIOTest08/Client.cpp)

add_executable(MultiplexingIOTest08-Client4
        Test/IOMultiplexing/MultiplexingIOTest08/Client.cpp)

add_executable(MultiplexingIOTest08-Server
        Test/IOMultiplexing/MultiplexingIOTest08/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest08/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest08/ClientData.hpp)

##################################################
# 9 大作业(无私聊功能)
add_executable(MultiplexingIOTest09-Client1
        Test/IOMultiplexing/MultiplexingIOTest09/Client.cpp)

add_executable(MultiplexingIOTest09-Client2
        Test/IOMultiplexing/MultiplexingIOTest09/Client.cpp)

add_executable(MultiplexingIOTest09-Client3
        Test/IOMultiplexing/MultiplexingIOTest09/Client.cpp)

add_executable(MultiplexingIOTest09-Client4
        Test/IOMultiplexing/MultiplexingIOTest09/Client.cpp)

add_executable(MultiplexingIOTest09-Server
        Test/IOMultiplexing/MultiplexingIOTest09/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest09/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest09/ClientData.hpp
        Test/IOMultiplexing/MultiplexingIOTest09/UserInfo.cpp
        Test/IOMultiplexing/MultiplexingIOTest09/UserInfo.hpp)
##################################################
# 10 大作业(添加了日志文件)
add_executable(MultiplexingIOTest10-Client1
        Test/IOMultiplexing/MultiplexingIOTest10/Client.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.hpp)

add_executable(MultiplexingIOTest10-Client2
        Test/IOMultiplexing/MultiplexingIOTest10/Client.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.hpp)

add_executable(MultiplexingIOTest10-Client3
        Test/IOMultiplexing/MultiplexingIOTest10/Client.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.hpp)

add_executable(MultiplexingIOTest10-Client4
        Test/IOMultiplexing/MultiplexingIOTest10/Client.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.hpp)

add_executable(MultiplexingIOTest10-Client5
        Test/IOMultiplexing/MultiplexingIOTest10/Client.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.hpp)

add_executable(MultiplexingIOTest10-Client6
        Test/IOMultiplexing/MultiplexingIOTest10/Client.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.hpp)

add_executable(MultiplexingIOTest10-Server
        Test/IOMultiplexing/MultiplexingIOTest10/Server.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/ClientData.hpp
        Test/IOMultiplexing/MultiplexingIOTest10/UserInfo.cpp
        Test/IOMultiplexing/MultiplexingIOTest10/UserInfo.hpp)

